<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">











<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>NPanday - COM References</title>
    <style type="text/css" media="all">
      @import url("../../css/maven-base.css");
      @import url("../../css/maven-theme.css");
      @import url("../../css/site.css");
    </style>
    <link rel="stylesheet" href="../../css/print.css" type="text/css" media="print" />
          </head>
  <body class="composite">
    <div id="banner">
                  <a href="" id="bannerLeft">
    
                                            <img src="../.././images/NPanday.png" alt="" />
    
            </a>
                        <a href="http://www.codeplex.com/" id="bannerRight">
    
                                            <img src="../.././images/logo-home.png" alt="" />
    
            </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
            
  
    
            <div class="xleft">
          
                <a href="http://npanday.codeplex.com/" class="externalLink">NPanday Home</a>
                &gt;
      
                <a href="../../">NPanday 1.2</a>
                  </div>
            <div class="xright">      
  

  
    
            
  
    
             Last Published: 22 Jun 2010
              &nbsp;| Version: 1.2
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
            
  
    
                   <h5>General Info</h5>
            <ul>
              
    <li class="none">
                    <a href="../../index.html">NPanday Overview</a>
          </li>
              
    <li class="none">
                    <a href="../../release-notes.html">NPanday Release Notes</a>
          </li>
              
    <li class="none">
                    <a href="../../faqs.html">NPanday FAQs</a>
          </li>
              
    <li class="none">
                    <a href="../../faqs.html">NPanday Features</a>
          </li>
              
    <li class="none">
                    <a href="../../npanday.pdf">Documentation PDF</a>
          </li>
          </ul>
              <h5>User's Guide</h5>
            <ul>
              
    <li class="none">
                    <a href="../.././guide/index.html">Introduction</a>
          </li>
              
    <li class="none">
                    <a href="../.././guide/installation/index.html">Installation</a>
          </li>
              
    <li class="none">
                    <a href="../.././guide/vs/index.html">Visual Studio Add-in</a>
          </li>
              
    <li class="none">
                    <a href="../.././guide/maven/index.html">Maven Command Line</a>
          </li>
              
    <li class="none">
                    <a href="../.././guide/devinfra/index.html">Maven Development Infrastructure</a>
          </li>
              
    <li class="none">
                    <a href="../../plugins/index.html">NPanday Plugins</a>
          </li>
          </ul>
              <h5>Contributing</h5>
            <ul>
              
    <li class="none">
                    <a href="../.././developers/index.html">Developer's Guide</a>
          </li>
              
    <li class="none">
                    <a href="../.././issue-tracking.html">Issue Tracking</a>
          </li>
              
    <li class="none">
                    <a href="../.././mail-lists.html">Mailing Lists</a>
          </li>
          </ul>
              <h5>Project Documentation</h5>
            <ul>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
                    <a href="../../project-info.html">Project Information</a>
                </li>
          </ul>
              <h5>Resources</h5>
            <ul>
              
    <li class="none">
                    <a href="http://maven.apache.org/" class="externalLink">Apache Maven</a>
          </li>
              
    <li class="none">
                    <a href="http://npanday.codeplex.com/" class="externalLink">NPanday on CodePlex</a>
          </li>
          </ul>
                                           <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
            <img alt="Built by Maven" src="../../images/logos/maven-feather.png"></img>
          </a>
                       
  

  
    
            
  
    
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section"><h2>COM References</h2>
<p>When Visual Studio compiles code that uses a COM object, it creates a wrapper DLL. For example, compiling code in <tt>MyProject</tt> that uses <tt>Shell32.dll</tt> will result in both <tt>MyProject.dll</tt> and <tt>Interop.Shell32.dll</tt> being created.</p>
<p>This also needs to happen if there is a transitive dependency - if <tt>OtherProject</tt> depends on <tt>MyProject</tt>, and <tt>MyProject</tt> uses <tt>Shell32.dll</tt>, then <tt>Interop.Shell32.dll</tt> also needs to be available when building <tt>OtherProject</tt>.</p>
<div class="section"><h3>Requirements</h3>
<ul><li>If needed, ActiveX/COM objects must be pre-installed on the build system. NPanday will not do the installation.</li>
<li>Adding ActiveX/COM from VS &quot;Add Reference&quot; should update the POM information with a <tt>&lt;dependency&gt;</tt> with type <tt>com_reference</tt>.</li>
<li>Generating POMs from a project containing a COM reference will result in a POM with a dependency with type <tt>com_reference</tt>.</li>
<li>When a dependency with type <tt>com_reference</tt> is encountered, NPanday will generate the interop wrapper DLL and use it during compilation.</li>
<li>Deleting ActiveX/COM reference should remove the <tt>com_reference</tt> dependency from the POM.</li>
<li>Adding ActiveX/COM from &quot;Add Maven Artifact&quot; local or remote Maven repository is not allowed. If this attempted, a meaningful error message should be displayed, and nothing should be added to the POM.</li>
<li>Building a project with ActiveX/COM references should successfully build if the referenced ActiveX is pre-installed in the system.</li>
<li>Building a project with ActiveX/COM references but the actual ActiveX/COM is not in the system should prompt a meaningful error message.</li>
<li>Interop wrapper DLLs may be installed/deployed to the local/remote repository and consumed as normal 'library' DLLs.</li>
</ul>
</div>
<div class="section"><h3>References</h3>
<ul><li><a class="externalLink" href="http://msdn.microsoft.com/en-us/library/sd10k43k.aspx">http://msdn.microsoft.com/en-us/library/sd10k43k.aspx</a></li>
<li><a class="externalLink" href="http://msdn.microsoft.com/en-us/magazine/cc301750.aspx">http://msdn.microsoft.com/en-us/magazine/cc301750.aspx</a></li>
</ul>
</div>
</div>

      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2010
    
          NPanday
          
  

  
    
            
  
    
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
